//filter中的回调函数有一个要求：必须返回一个boolean值
//true:当返回true时，函数内部会将这次回调的n加入到一个新数组中
//false ：当返回false时，函数会过滤掉这个n

const nums = [10, 20, 111, 222, 444, 40, 50]
//回调写法
/*let newNums =nums.filter(function (n){
  return n < 100
})*/
//转换箭头写法
let newNums = nums.filter((n) => {
  return n < 100
})
//简写
/*let newNums =nums.filter(n=>n<100)*/
console.log(newNums)

//map函数的使用
// let new2Nums=newNums.map(function (n){
//   return n*2
// })

let new2Nums = newNums.map(n => n * 2)
console.log(new2Nums)

//reduce函数的使用,求和 参数a是前面return的
// let totalNums = new2Nums.reduce(function (a,n){
//   return a+n;
//
// })
let totalNums = new2Nums.reduce((a, n) => a + n);
//链式编程
let totalNums1 = nums.filter(n => n < 100).map(n => n * 2).reduce((a, n) => a + n)
console.log(totalNums)
console.log(totalNums1)
